今天我們要來關心程式的流程控制,資訊人有句名言,程式只有三種結構,循序、選擇和重複,因此只要掌握本日的教學,只要肯花時間,有耐心,邏輯清晰,高EQ,保持快樂心情和健康的生活習慣,先不論程式開發的架構,理論上90%程式都能開發,讓我們來開始吧~
縮排,相信已經有不少同學都非常清楚他的重要性,縮排可以使程式碼的區塊更加明顯,可提高程式碼的可讀性,有鑑於python的開發宗旨為『優雅的開發程式碼』,因此我們python的使用者也必須遵循『優雅的開發程式碼』這個信條,因此python有別於其他語言的特色就是,python是用空格縮排劃分程式碼區塊,而不使用大括號{}或者保留字(start、end if),這就是python「優雅」、「明確」、「簡單」的設計哲學,以下將會以程式碼實際示範。
顧名思義,程式會按照順逐行執行,這是最單純的結構,範例如下:
a = 10
a += 1
print(a)
# 印出 11
選擇結構就是從數個程式區塊中選一個區塊來執行,所使用的保留字為if
,所屬if
區塊的程式碼都要縮排,結構如下:
程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就不執行if區塊內程式碼
if 判斷式:
# 在以下的程式碼都屬於if區塊,皆要縮排
程式碼...
程式碼...
程式碼...
# 在以下的程式碼沒有縮排,if區塊到此結束
程式碼...
程式碼...
實際操做如下:
score = 75
if score < 60:
print("不及格")
if score >= 60:
print("及格")
# 印出 "及格"
當if
區塊不執行,就執行else
區塊,兩個區塊必定會執行一塊
程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就執行else區塊內程式碼
if 判斷式:
# 在以下的程式碼都屬於if區塊,皆要縮排
程式碼...
# if區塊到此結束
else:
# 在以下的程式碼都屬於else區塊,皆要縮排
程式碼...
# else區塊到此結束
程式碼...
實際操做如下:
score = 75
if score < 60:
print("不及格")
else:
print("及格")
# 印出 "及格"
當if
的判斷式為True,則只執行if
區塊的程式碼,要是if
的判斷式為False,就判斷下個elif
的判斷式,當elif
的判斷式為True,則只執行elif
區塊的程式碼,要是所有判斷式False,最後就執行else
區塊
程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就往下接著判斷elif
if 判斷式:
# 在以下的程式碼都屬於if區塊,皆要縮排
程式碼...
# if區塊到此結束
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就往下接著判斷elif
elif 判斷式:
# 在以下的程式碼都屬於elif區塊,皆要縮排
程式碼...
# elif區塊到此結束
# 當所有判斷皆為False,則執行else區塊
else:
# 在以下的程式碼都屬於else區塊,皆要縮排
程式碼...
# else區塊到此結束
程式碼...
實際操做如下:
score = 55
if score >= 80:
print("優等")
elif score < 80 and score >= 60:
print("及格")
elif score < 60 and score >= 40:
print("補考")
else:
print("當掉")
# 印出 "補考"
需要重複執行的程式區塊,俗稱迴圈用法如下
while 布林值:
#若布林值為True則執行
程式碼...
程式碼…
#回到迴圈上方,若布林值為True,則再往下執行
#若布林值為False,則離開迴圈
實際操做如下
a = 0
while a<10:
a = a + 1
# 當a被加1加到不再小於10的時候離開迴圈
for 變數 in 列表:
將列表中的項目
逐一放到變數中
逐一往下處理
實際操做如下
s = 0
for i in [1, 10, 100, 1000, 10000]:
s += i
print(s)
# 印出 11111
當迴圈執行到break時,直接離開迴圈,用法如下
for 變數 in 列表
…
break
…
while 布林值:
…
break
…
實際操做如下
s = 0
for i in [1, 10, 100, 1000, 10000]:
if i > 100:
break
s += i
print(s)
# 因為當1000被放入i並執行迴圈時,i大於1000,因此進入if區塊,在if區塊內遇到break,所以離開迴圈,印出 111
當迴圈執行到continue時,直接進入下一圈迴圈,用法如下
for 變數 in 列表:
…
continue
…
while 布林值:
…
continue
…
實際操做如下
s = 0
for i in [1, 10, 100, 1000, 10000]:
if i == 100:
continue
s += i
print(s)
# 因為當100被放入i並執行迴圈時,i等於100,因此進入if區塊,在if區塊內遇到continue,所以停止往下執行,直接進入下一圈迴圈,印出 11011